﻿package com.logrogue {
	
	/**
	 * Интерфейс фабрики логеров.
	 * 
	 * @version  1.0
	 * @author   meps
	 */
	public interface ILogFactory {
		
		/**
		 * Инициализировать фабрику логеров.
		 * 
		 * <p>Фабрика логеров инициализируется однократно на приложение.
		 * Идентификатор приложения используется всеми создаваемыми фабрикой
		 * экземплярами логеров, что гарантирует попадание их логов в единый
		 * поток. При необходимости можно объединить логи физически различных
		 * приложений, задав им совпадающие идентификаторы.</p>
		 * 
		 * @param   идентификатор экземпляра приложения; если установлено в null
		 *          или пустую строку, то автоматически будет создан уникальный
		 *          идентификатор;
		 * 
		 * @param   имя приложения;
		 * 
		 * @param   версия приложения;
		 * 
		 * @param   номер сборки приложения;
		 * 
		 * @param   прочие параметры фабрики логеров, зависящие от реализации;
		 */
		function init(appID:String = null, appName:String = null, appVersion:String = null, appBuild:int = 0, ... params):ILogClient;
		
		/*
		function get TARGET_DEFAULT():uint;
		function get TARGET_NONE():uint;
		function get TARGET_TRACE():uint;
		function get TARGET_FIREBUG():uint;
		function get TARGET_HTTP_SERVER():uint;
		function get TARGET_SOCKET_SERVER():uint;
		function get TARGET_LOCAL_FILE():uint;
		function get TARGET_LOCAL_CONNECTION():uint;
		function get TARGET_EXTENDED_CONNECTION():uint;
		function get TARGET_ALL():uint;
		*/
		
	}
	
}